home *** CD-ROM | disk | FTP | other *** search
- $INCLUDE: 'C:\FG\INTRFACE.FOR'
-
- PROGRAM MAIN
-
- INTEGER*2 MODE, OLD_MODE
- CHARACTER*5 STRING
- INTEGER*2 FG_GETMODE, FG_TESTMODE
-
- C Ask for the video mode number
-
- WRITE(6,*) 'Which video mode?'
- READ(5,*) MODE
-
- C Make sure the entered value is valid
-
- IF (MODE .LT. 0 .OR. MODE .GT. 29) THEN
- WRITE(6,1000) MODE
- STOP ' '
- END IF
-
- C Make sure the requested video mode is available
-
- IF (FG_TESTMODE(MODE,1) .EQ. 0) THEN
- WRITE(6,1010) MODE
- STOP ' '
- END IF
-
- C Establish the video mode
-
- OLD_MODE = FG_GETMODE()
- CALL FG_SETMODE(MODE)
-
- C Perform mode-specific initializations
-
- C text modes
-
- IF (MODE .LE. 3 .OR. MODE .EQ. 7) THEN
- CALL FG_CURSOR(0)
-
- C CGA color modes
-
- ELSE IF (MODE .EQ. 4 .OR. MODE .EQ. 5) THEN
- CALL FG_PALETTE(0,0)
- CALL FG_DEFCOLOR(14,3)
-
- C CGA two-color mode
-
- ELSE IF (MODE .EQ. 6) THEN
- CALL FG_PALETTE(0,14)
- CALL FG_DEFCOLOR(14,1)
-
- C Hercules mode
-
- ELSE IF (MODE .EQ. 11) THEN
- CALL FG_DEFCOLOR(14,1)
-
- C Hercules low-res mode
-
- ELSE IF (MODE .EQ. 12) THEN
- CALL FG_DEFCOLOR(14,3)
-
- C VGA two-color mode
-
- ELSE IF (MODE .EQ. 17) THEN
- CALL FG_PALETTE(1,14)
- CALL FG_SETRGB(14,63,63,21)
- CALL FG_DEFCOLOR(14,1)
- END IF
-
- C Display a message that includes the video mode number
-
- CALL FG_SETCOLOR(14)
- CALL FG_TEXT('I''m running in mode ',20)
- WRITE(STRING,1020) MODE
- CALL FG_TEXT(STRING,3)
-
- C Wait for a keystroke
-
- CALL FG_WAITKEY
-
- C Restore the original video mode and screen attributes
-
- CALL FG_SETMODE(OLD_MODE)
- CALL FG_RESET
-
- STOP ' '
- 1000 FORMAT(I6,' is not a valid video mode number.')
- 1010 FORMAT(' Mode ',I2,' is not available on this system.')
- 1020 FORMAT(I2,'.')
- END